package com.zimin.cloud.system.biz;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zimin.cloud.mine.pojo.file.business.FaceBO;
import com.zimin.cloud.mine.pojo.system.business.AccountBO;
import com.zimin.cloud.mine.pojo.system.business.LoginBO;
import com.zimin.cloud.mine.pojo.system.view.AccountVO;
import com.zimin.cloud.mine.pojo.system.view.LoginVO;
import com.zimin.cloud.system.pojo.entity.Account;
import com.zimin.cloud.system.service.IAccountService;
import com.zimin.shared.pojo.PageVO;
import com.zimin.shared.pojo.Result;

/**
 * <p>
 * 用户信息 业务对象
 * </p>
 *
 * @author zimin
 * @since 2021-12-30 11:04
 */
public interface IAccountBiz extends IAccountService {

    /**
     * 分页查询用户列表
     */
    PageVO<AccountVO> pageAccountList(Page<Account> accountPage, AccountBO accountBO);

    /**
     * 保存用户
     */
    boolean save(AccountBO accountBO);

    /**
     * 根据ID修改用户
     */
    boolean updateById(AccountBO accountBO);

    /**
     * <p>重置用户密码</p>
     *
     * @param accountBO 重置用户对象
     * @return boolean
     * @since 2022-03-16 14:56:59
     */
    boolean resetPassword(AccountBO accountBO);

    /**
     * <p>登录</p>
     *
     * @param loginBO 登录对象
     * @return boolean
     * @since 2022-03-17 16:19:18
     */
    LoginVO login(LoginBO loginBO);

    /**
     * <p>人脸登录</p>
     *
     * @param loginBO 登录参数
     * @return com.zimin.cloud.mine.pojo.system.view.LoginVO
     * @since 2022-04-08 10:04:22
     */
    LoginVO faceLogin(LoginBO loginBO) throws Exception;

    /**
     * <p>根据ID获取登录信息</p>
     *
     * @param userId 用户ID
     * @param token 登录凭证
     * @return com.zimin.cloud.mine.pojo.system.view.LoginVO
     * @since 2022-04-18 10:14:56
     */
    LoginVO getLoginInfoById(String userId, String token);

    boolean updatePassword(AccountBO accountBO);

    boolean setFaceId(FaceBO faceBO) throws Exception;
}
